//
//  ClienteDVStaticViewController.m
//  iTeVe
//
//  Created by Pedro Gonzalez on 08/02/14.
//  Copyright (c) 2014 SISI Software. All rights reserved.
//

#import "ClienteDVStaticViewController.h"
#import "FMDBDataAccess.h"


@interface ClienteDVStaticViewController () <UITextViewDelegate, UITextFieldDelegate, BSKeyboardControlsDelegate, UIPickerViewDelegate, UIPickerViewDataSource>

@property (nonatomic, strong) BSKeyboardControls *keyboardControls;

@end

@implementation ClienteDVStaticViewController

@synthesize btnAnnulla;
@synthesize btnConferma;


@synthesize modelLabel;
@synthesize modelCliente;

@synthesize lblRagioneSociale;
@synthesize lblIndirizzo;
@synthesize lblCapCittaProvincia;
@synthesize lblNazione;
@synthesize lblTelefonoFaxCell;
@synthesize lblEmailSitoWeb;
@synthesize lblPartitaIvaCodiceFiscale;
@synthesize lblSconti;
@synthesize lblListino;
@synthesize lblAgente;
@synthesize lblTrasporto;
@synthesize lblPagamento;
@synthesize lblBanca;
@synthesize lblEsenzioneIva;
@synthesize lblNota;


@synthesize tfRagioneSociale;
@synthesize tfIndirizzo;
@synthesize tfCap;
@synthesize tfCitta;
@synthesize tfProvincia;
@synthesize tfNazione;
@synthesize tfTelefono;
@synthesize tfFax;
@synthesize tfCellulare;
@synthesize tfEmail;
@synthesize tfSitoWeb;
@synthesize tfPartitaIva;
@synthesize tfCodiceFiscale;
@synthesize tfSc1;
@synthesize tfSc2;
@synthesize tfSc3;
@synthesize tfSc4;
@synthesize tfNota;
@synthesize tfListino, tfListinoDescrizione;
@synthesize tfAgente, tfAgenteDescrizione;
@synthesize tfTrasporto, tfTrasportoDescrizione;
@synthesize tfPagamento, tfPagamentoDescrizione;
@synthesize tfBanca, tfBancaDescrizione;
@synthesize tfEsenzioneIva, tfEsenzioneIvaDescrizione;

@synthesize activeField;

@synthesize nuovo;

@synthesize pagamenti, listini, agenti, trasporti, banche, esenzioniiva; // = _pagamenti;


- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    nuovo = [modelCliente.nuovo boolValue];
    if (nuovo){
        
    } else {
        
    }
    
//    self.pagamenti = [NSArray arrayWithObjects:@"Contanti", @"Carta di Credito", @"Bancomat", @"Assegno Bancario", @"Bonifico Bancario", nil];
    
    FMDBDataAccess *db = [[FMDBDataAccess alloc] init];
    
    pagamenti = [db getCondizioniPagamento];
    listini = [db getListini];
    agenti = [db getAgenti];
    trasporti = [db getTrasporto];
    banche = [db getBanche];
    esenzioniiva = [db getAliquote];

    
    tfRagioneSociale.delegate = self;
    tfIndirizzo.delegate = self;
    tfCap.delegate = self;
    tfCitta.delegate = self;
    tfProvincia.delegate = self;
    tfNazione.delegate = self;
    tfTelefono.delegate = self;
    tfFax.delegate = self;
    tfCellulare.delegate = self;
    tfEmail.delegate = self;
    tfSitoWeb.delegate = self;
    tfPartitaIva.delegate = self;
    tfCodiceFiscale.delegate = self;
    tfSc1.delegate = self;
    tfSc2.delegate = self;
    tfSc3.delegate = self;
    tfSc4.delegate = self;
    tfListino.delegate = self;
    tfAgente.delegate = self;
    tfTrasporto.delegate = self;
    tfPagamento.delegate = self;
    tfBanca.delegate = self;
    tfEsenzioneIva.delegate = self;
    tfNota.delegate = self;
    
    modelLabel.text = modelCliente.ragionesociale;
    tfRagioneSociale.text = modelCliente.ragionesociale;
    tfIndirizzo.text = modelCliente.indirizzo;
    tfCap.text = modelCliente.cap;
    tfCitta.text = modelCliente.citta;
    tfProvincia.text = modelCliente.provincia;
    tfNazione.text = modelCliente.nazione;
    tfTelefono.text = modelCliente.telefono;
    tfFax.text = modelCliente.fax;
    tfCellulare.text = modelCliente.cellulare;
    tfEmail.text = modelCliente.email;
    tfSitoWeb.text = modelCliente.sitoweb;
    tfPartitaIva.text = modelCliente.partitaiva;
    tfCodiceFiscale.text = modelCliente.codicefiscale;
    
    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
    [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
    [numberFormatter setNegativeFormat:@"(0.00)"];
    [numberFormatter setPositiveFormat:@"0.00"];
    
    // (55.28)
//    NSString *text = [numberFormatter stringFromNumber:num2];
    
//    tfSc1.text = [NSString localizedStringWithFormat:@"%@", modelCliente.sc1, nil];
//    tfSc2.text = [NSString localizedStringWithFormat:@"%@", modelCliente.sc2, nil];
//    tfSc3.text = [NSString localizedStringWithFormat:@"%@", modelCliente.sc3, nil];
//    tfSc4.text = [NSString localizedStringWithFormat:@"%@", modelCliente.sc4, nil];
    
    tfSc1.text = [numberFormatter stringFromNumber:modelCliente.sc1];
    tfSc2.text = [numberFormatter stringFromNumber:modelCliente.sc2];
    tfSc3.text = [numberFormatter stringFromNumber:modelCliente.sc3];
    tfSc4.text = [numberFormatter stringFromNumber:modelCliente.sc4];
    
    tfNota.text = modelCliente.nota;
    tfNota.layer.borderWidth = 1.0f;
    tfNota.layer.cornerRadius = 8;
    tfNota.layer.borderColor = [[UIColor lightGrayColor] CGColor];
    
    tfAgente.text = modelCliente.codagente;
    tfTrasporto.text = modelCliente.codtrasporto;
    tfBanca.text = modelCliente.codbanca;
    tfEsenzioneIva.text = modelCliente.codesenzione;


    [self viewDatiPagamento:modelCliente.codpagamento];
    [self viewDatiListino:modelCliente.codlistino];
    [self viewDatiEsenzioniIva:modelCliente.codesenzione];
    [self viewDatiAgente:modelCliente.codagente];
    [self viewDatiTrasporto:modelCliente.codtrasporto];
    [self viewDatiBanca:modelCliente.codbanca];
    
    // controllo tastiera next/previous
    NSArray *fields = @[ tfRagioneSociale, tfIndirizzo, tfCap, tfCitta, tfProvincia, tfNazione, tfTelefono,
                         tfFax, tfCellulare, tfEmail, tfSitoWeb, tfPartitaIva, tfCodiceFiscale, tfSc1, tfSc2, tfSc3, tfSc4,
                         tfListino, tfAgente, tfTrasporto, tfPagamento, tfBanca, tfEsenzioneIva, tfNota];
    
    [self setKeyboardControls:[[BSKeyboardControls alloc] initWithFields:fields]];
    [self.keyboardControls setDelegate:self];
    
    
    btnAnnulla.title = NSLocalizedString(@"TESTO_ANNULLA", @"Annulla...");
    btnConferma.title = NSLocalizedString(@"TESTO_CONFERMA", @"Conferma...");
//    [btnAnnulla setTitle:NSLocalizedString(@"TESTO_ANNULLA", @"Annulla...") forState:UIControlStateNormal];
//    [btnConferma setTitle:NSLocalizedString(@"TESTO_CONFERMA", @"Conferma...") forState:UIControlStateNormal];
    
    self.lblRagioneSociale.text = NSLocalizedString(@"CLIENTI_LABEL_RAGIONESOCIALE", nil);
    self.lblIndirizzo.text  = NSLocalizedString(@"CLIENTI_LABEL_INDIRIZZO", nil);
    self.lblCapCittaProvincia.text = NSLocalizedString(@"CLIENTI_LABEL_CAPCITTAPROVINCIA", nil);
    self.lblNazione.text = NSLocalizedString(@"CLIENTI_LABEL_NAZIONE", nil);
    self.lblTelefonoFaxCell.text = NSLocalizedString(@"CLIENTI_LABEL_TELEFONOFAXCELL", nil);
    self.lblEmailSitoWeb.text = NSLocalizedString(@"CLIENTI_LABEL_EMAILSITOWEB", nil);
    self.lblPartitaIvaCodiceFiscale.text = NSLocalizedString(@"CLIENTI_LABEL_PARTITAIVACODICEFISCALE", nil);
    self.lblSconti.text = NSLocalizedString(@"CLIENTI_LABEL_SCONTI", nil);
    self.lblListino.text = NSLocalizedString(@"CLIENTI_LABEL_LISTINO", nil);
    self.lblAgente.text = NSLocalizedString(@"CLIENTI_LABEL_AGENTE", nil);
    self.lblTrasporto.text = NSLocalizedString(@"CLIENTI_LABEL_TRASPORTO", nil);
    self.lblPagamento.text = NSLocalizedString(@"CLIENTI_LABEL_PAGAMENTO", nil);
    self.lblBanca.text = NSLocalizedString(@"CLIENTI_LABEL_BANCA", nil);
    self.lblEsenzioneIva.text = NSLocalizedString(@"CLIENTI_LABEL_ESENZIONEIVA", nil);
    self.lblNota.text = NSLocalizedString(@"CLIENTI_LABEL_NOTA", nil);
    
    
    //
    tfListino.inputView = self.listiniPicker;
    tfListino.inputAccessoryView = self.accessoryView;
    //
    tfAgente.inputView = self.agentiPicker;
    tfAgente.inputAccessoryView = self.accessoryView;
    //
    tfTrasporto.inputView = self.trasportoPicker;
    tfTrasporto.inputAccessoryView = self.accessoryView;
    //
    tfPagamento.inputView = self.pagamentiPicker;
    tfPagamento.inputAccessoryView = self.accessoryView;
    //
    tfBanca.inputView = self.banchePicker;
    tfBanca.inputAccessoryView = self.accessoryView;
    //
    tfEsenzioneIva.inputView = self.esenzioniIvaPicker;
    tfEsenzioneIva.inputAccessoryView = self.accessoryView;
    //
    

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];

}

- (void)keyboardControlsDonePressed:(BSKeyboardControls *)keyboardControls
{
    [keyboardControls.activeField resignFirstResponder];
}

- (void)keyboardControls:(BSKeyboardControls *)keyboardControls selectedField:(UIView *)field inDirection:(BSKeyboardControlsDirection)direction
{
    UIView *view = keyboardControls.activeField.superview.superview;
    [self.tableView scrollRectToVisible:view.frame animated:YES];
}


- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    [self.keyboardControls setActiveField:textField];
}

- (void)textViewDidBeginEditing:(UITextView *)textView
{
    [self.keyboardControls setActiveField:textView];
}


- (IBAction)cancel:(id)sender
{
    [self.delegate clienteDVStaticViewControllerDidCancel:self];
}


- (IBAction)done:(id)sender
{
    
    // controlli
    if (tfRagioneSociale.text.length==0){
        NSString *msg = @"La Ragione Sociale non deve essere vuota...";
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Informazione"
                                                        message:msg
                                                       delegate:nil
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles:nil];
        [alert show];
        return;
    }
    
    
    if ( tfEmail.text.length > 0 && ![self NSStringIsValidEmail:tfEmail.text ]){
        NSString *msg = @"Mail non valida...";
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Informazione"
                                                        message:msg
                                                       delegate:nil
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles:nil];
        [alert show];
        return;
    }
    
    
    Cliente *cliente = [[Cliente alloc] init];
    
    cliente.idcliente = modelCliente.idcliente;
    cliente.ragionesociale = tfRagioneSociale.text;
    cliente.indirizzo = tfIndirizzo.text;
    cliente.cap = tfCap.text;
    cliente.citta = tfCitta.text;
    cliente.provincia = tfProvincia.text;
    cliente.nazione = tfNazione.text;
    cliente.telefono = tfTelefono.text;
    cliente.fax = tfFax.text;
    cliente.cellulare = tfCellulare.text;
    cliente.email = tfEmail.text;
    cliente.sitoweb = tfSitoWeb.text;
    cliente.partitaiva = tfPartitaIva.text;
    cliente.codicefiscale = tfCodiceFiscale.text;
    
    NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
    [f setNumberStyle:NSNumberFormatterDecimalStyle];
    [f setLenient:YES];
    
    NSNumber * sc1 = [f numberFromString:tfSc1.text];
    NSNumber * sc2 = [f numberFromString:tfSc2.text];
    NSNumber * sc3 = [f numberFromString:tfSc3.text];
    NSNumber * sc4 = [f numberFromString:tfSc4.text];
    cliente.sc1 = sc1;
    cliente.sc2 = sc2;
    cliente.sc3 = sc3;
    cliente.sc4 = sc4;
    
    cliente.codlistino = tfListino.text;
    cliente.codagente = tfAgente.text;
    cliente.codtrasporto = tfTrasporto.text;
    cliente.codpagamento = tfPagamento.text;
    cliente.codbanca = tfBanca.text;
    cliente.codesenzione = tfEsenzioneIva.text;
    cliente.nota = tfNota.text;
    
    [tfRagioneSociale becomeFirstResponder];
    if (nuovo){
        [self.delegate clienteDVStaticViewController:self didAddCliente:cliente];
    } else {
        [self.delegate clienteDVStaticViewController:self didEditCliente:cliente];
    }
    

}


// permetto inserire unicamente numeri
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if (textField == self.tfSc1 || textField == self.tfSc2 || textField == self.tfSc3 || textField == self.tfSc4)
    {
        NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
        
        NSLocale* locale = [NSLocale currentLocale];
        NSString *separatore = [locale objectForKey: NSLocaleDecimalSeparator];
        
        NSString *expression = [NSString stringWithFormat:@"%@%@%@", @"^([0-9]+)?(\\", separatore, @"([0-9]{1,2})?)?$"];
        
        NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:expression
                                                                               options:NSRegularExpressionCaseInsensitive
                                                                                 error:nil];
        NSUInteger numberOfMatches = [regex numberOfMatchesInString:newString
                                                            options:0
                                                              range:NSMakeRange(0, [newString length])];
        if (numberOfMatches == 0)
            return NO;
    }
    
    return YES;
}


-(BOOL) NSStringIsValidEmail:(NSString *)checkString
{
    BOOL stricterFilter = YES;
    NSString *stricterFilterString = @"[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}";
    NSString *laxString = @".+@([A-Za-z0-9]+\\.)+[A-Za-z]{2}[A-Za-z]*";
    NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [emailTest evaluateWithObject:checkString];
}


/*
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    [segue destinationViewController];
}
*/



- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{


    if(textField==tfPagamento && tfPagamento.text.length>0){
        int index = -1;
        for (int i=0; i<pagamenti.count; i++) {
            Pagamento* pag = pagamenti[i];
            if ([pag.codpag isEqualToString:tfPagamento.text]){
                index = i;
                break;
            }
        }
        if (index!=-1){
            [pagamentiPicker reloadAllComponents];
            [pagamentiPicker selectRow:index inComponent:0 animated:NO];
        }

    } else if (textField==tfListino && tfListino.text.length>0){
        int index = -1;
        for (int i=0; i<listini.count; i++) {
            Listino* lis = listini[i];
            if ([lis.codlis isEqualToString:tfListino.text]){
                index = i;
                break;
            }
        }
        if (index!=-1){
            [listiniPicker reloadAllComponents];
            [listiniPicker selectRow:index inComponent:0 animated:NO];
        }
        
    } else if (textField==tfAgente && tfAgente.text.length>0){
        int index = -1;
        for (int i=0; i<agenti.count; i++) {
            Agente* lis = agenti[i];
            if ([lis.codage isEqualToString:tfAgente.text]){
                index = i;
                break;
            }
        }
        if (index!=-1){
            [agentiPicker reloadAllComponents];
            [agentiPicker selectRow:index inComponent:0 animated:NO];
        }

    } else if (textField==tfTrasporto && tfTrasporto.text.length>0){
        int index = -1;
        for (int i=0; i<trasporti.count; i++) {
            Trasporto* lis = trasporti[i];
            if ([lis.codtra isEqualToString:tfTrasporto.text]){
                index = i;
                break;
            }
        }
        if (index!=-1){
            [trasportoPicker reloadAllComponents];
            [trasportoPicker selectRow:index inComponent:0 animated:NO];
        }

    } else if (textField==tfBanca && tfBanca.text.length>0){
        int index = -1;
        for (int i=0; i<banche.count; i++) {
            Banca* lis = banche[i];
            if ([lis.codban isEqualToString:tfBanca.text]){
                index = i;
                break;
            }
        }
        if (index!=-1){
            [banchePicker reloadAllComponents];
            [banchePicker selectRow:index inComponent:0 animated:NO];
        }

        
    } else if (textField==tfEsenzioneIva && tfEsenzioneIva.text.length>0){
        int index = -1;
        for (int i=0; i<esenzioniiva.count; i++) {
            Aliquota* lis = esenzioniiva[i];
            if ([lis.codali isEqualToString:tfEsenzioneIva.text]){
                index = i;
                break;
            }
        }
        if (index!=-1){
            [esenzioniIvaPicker reloadAllComponents];
            [esenzioniIvaPicker selectRow:index inComponent:0 animated:NO];
        }
        
    }

    return YES;
}



-(void)viewDatiListino:(NSString*)codlis
{
    if (codlis.length==0) {
        return;
    }
    
    FMDBDataAccess *db = [[FMDBDataAccess alloc] init];
    Listino* listino = [db getListinoxCodice:codlis];
    
    tfListino.text = codlis;
    tfListinoDescrizione.text = listino.descrizione;
}


-(void)viewDatiAgente:(NSString*)codage
{
    if (codage.length==0) {
        return;
    }
    
    
    FMDBDataAccess *db = [[FMDBDataAccess alloc] init];
    Agente* agente = [db getAgentexCodice:codage];
    
    tfAgente.text = codage;
    tfAgenteDescrizione.text = agente.descrizione;
    
}


-(void)viewDatiTrasporto:(NSString*)codtra
{
    if (codtra.length==0) {
        return;
    }


    FMDBDataAccess *db = [[FMDBDataAccess alloc] init];
    Trasporto* trasporto = [db getTrasportoxCodice:codtra];
    
    tfTrasporto.text = codtra;
    tfTrasportoDescrizione.text = trasporto.descrizione;

}


-(void)viewDatiPagamento:(NSString*)codpag
{
    if (codpag.length==0) {
        return;
    }
    
    FMDBDataAccess *db = [[FMDBDataAccess alloc] init];
    Pagamento* pagamento = [db getCondizionePagamentoxCodice:codpag];
    
    tfPagamento.text = codpag;
    tfPagamentoDescrizione.text = pagamento.descrizione;
}

-(void)viewDatiBanca:(NSString*)codban
{
    if (codban.length==0) {
        return;
    }
    
    FMDBDataAccess *db = [[FMDBDataAccess alloc] init];
    Banca* banca = [db getBancaxCodice:codban];
    
    tfBanca.text = codban;
    tfBancaDescrizione.text = banca.descrizione;
}


-(void)viewDatiEsenzioniIva:(NSString*)codali
{
    if (codali.length==0) {
        return;
    }
    
    FMDBDataAccess *db = [[FMDBDataAccess alloc] init];
    Aliquota* aliquota = [db getAliquotaxCodice:codali];
 
    tfEsenzioneIva.text = codali;
    tfEsenzioneIvaDescrizione.text = aliquota.descrizione;
}

- (IBAction)selezionaPagamento:(id)sender {
    // seleziono pagamento
    NSLog(@"Seleziono Pagamento");
}




- (UIPickerView *)listiniPicker {
    if ( listiniPicker == nil ) {
        listiniPicker = [[UIPickerView alloc] init];
        listiniPicker.delegate = self;
        listiniPicker.dataSource = self;
        listiniPicker.showsSelectionIndicator = YES;
        [listiniPicker reloadAllComponents];
        
    }
    
    return listiniPicker;
}


- (UIPickerView *)agentiPicker {
    if ( agentiPicker == nil ) {
        agentiPicker = [[UIPickerView alloc] init];
        agentiPicker.delegate = self;
        agentiPicker.dataSource = self;
        agentiPicker.showsSelectionIndicator = YES;
        [agentiPicker reloadAllComponents];
        
    }
    
    return agentiPicker;
}

- (UIPickerView *)trasportoPicker {
    if ( trasportoPicker == nil ) {
        trasportoPicker = [[UIPickerView alloc] init];
        trasportoPicker.delegate = self;
        trasportoPicker.dataSource = self;
        trasportoPicker.showsSelectionIndicator = YES;
        [trasportoPicker reloadAllComponents];
        
    }
    
    return trasportoPicker;
}

- (UIPickerView *)pagamentiPicker {
    if ( pagamentiPicker == nil ) {
        pagamentiPicker = [[UIPickerView alloc] init];
        pagamentiPicker.delegate = self;
        pagamentiPicker.dataSource = self;
        pagamentiPicker.showsSelectionIndicator = YES;
        [pagamentiPicker reloadAllComponents];
        
    }
    
    return pagamentiPicker;
}

- (UIPickerView *)banchePicker {
    if ( banchePicker == nil ) {
        banchePicker = [[UIPickerView alloc] init];
        banchePicker.delegate = self;
        banchePicker.dataSource = self;
        banchePicker.showsSelectionIndicator = YES;
        [banchePicker reloadAllComponents];
        
    }
    
    return banchePicker;
}



- (UIPickerView *)esenzioniIvaPicker {
    if ( esenzioniIvaPicker == nil ) {
        esenzioniIvaPicker = [[UIPickerView alloc] init];
        esenzioniIvaPicker.delegate = self;
        esenzioniIvaPicker.dataSource = self;
        esenzioniIvaPicker.showsSelectionIndicator = YES;
        [esenzioniIvaPicker reloadAllComponents];
    }
    
    return esenzioniIvaPicker;
}


// accessoryView

- (UIToolbar *)accessoryView {
    if ( accessoryView == nil ) {
        accessoryView = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
        
        UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                                    target:self
                                                                                    action:@selector(doneButton)];
        
        UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]  initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
                                                                        target:self
                                                                        action:@selector(cancelButton)];
        
        doneButton.title = NSLocalizedString(@"TESTO_CONFERMA", @"Conferma...");
        cancelButton.title = NSLocalizedString(@"TESTO_ANNULLA", @"Annulla...");
        
        [accessoryView setItems:[NSArray arrayWithObjects:cancelButton, doneButton, nil]];
    }
    
    return accessoryView;
}


- (void)doneButton {
   
    if ( [tfPagamento isFirstResponder] ) {
        
        NSInteger row = [self.pagamentiPicker selectedRowInComponent:0];
        Pagamento *pagamento = pagamenti[row];
        [self viewDatiPagamento:pagamento.codpag];
        [tfPagamento resignFirstResponder];
        
    } else if ( [tfListino isFirstResponder] ) {
        
        NSInteger row = [self.listiniPicker selectedRowInComponent:0];
        Listino *listino = listini[row];
        [self viewDatiListino:listino.codlis];
        [tfListino resignFirstResponder];

    } else if ( [tfAgente isFirstResponder] ) {
        
        NSInteger row = [self.agentiPicker selectedRowInComponent:0];
        Agente *agente = agenti[row];
        [self viewDatiAgente:agente.codage];
        [tfAgente resignFirstResponder];

    } else if ( [tfTrasporto isFirstResponder] ) {
        
        NSInteger row = [self.trasportoPicker selectedRowInComponent:0];
        Trasporto *trasporto = trasporti[row];
        [self viewDatiTrasporto:trasporto.codtra];
        [tfTrasporto resignFirstResponder];

    } else if ( [tfBanca isFirstResponder] ) {
        
        NSInteger row = [self.banchePicker selectedRowInComponent:0];
        Banca *banca = banche[row];
        [self viewDatiBanca:banca.codban];
        [tfBanca resignFirstResponder];
        
    } else if ( [tfEsenzioneIva isFirstResponder] ) {
        
        NSInteger row = [self.esenzioniIvaPicker selectedRowInComponent:0];
        Aliquota *aliquota = esenzioniiva[row];
        [self viewDatiEsenzioniIva:aliquota.codali];
        [tfEsenzioneIva resignFirstResponder];

        
    }

}

- (void)cancelButton {
    //
    if ( [tfPagamento isFirstResponder] ) {
        
        [tfPagamento resignFirstResponder];
        
    } else if ( [tfListino isFirstResponder] ) {
        
        [tfListino resignFirstResponder];
        
    } else if ( [tfAgente isFirstResponder] ) {
        
        [tfAgente resignFirstResponder];

    } else if ( [tfTrasporto isFirstResponder] ) {
        
        [tfTrasporto resignFirstResponder];
        
    } else if ( [tfBanca isFirstResponder] ) {
        
        [tfBanca resignFirstResponder];

    } else if ( [tfEsenzioneIva isFirstResponder] ) {
        
        [tfEsenzioneIva resignFirstResponder];

        
    }

}

// picker view

- (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
    
    NSString *descrizione = @"";
    if ( [pickerView isEqual:pagamentiPicker] ||  [tfPagamento isFirstResponder]  ) {
        
        Pagamento *pagamento = pagamenti[row];
        NSString *descrizionePagamento = [NSString stringWithFormat:@"%@ - %@", pagamento.codpag, pagamento.descrizione];
        descrizione = descrizionePagamento;
        
    } else if ([pickerView isEqual:listiniPicker] ||   [tfListino isFirstResponder] ) {
        
        Listino *listino = listini[row];
        descrizione = [NSString stringWithFormat:@"%@ - %@", listino.codlis, listino.descrizione];

    } else if ([pickerView isEqual:agentiPicker] ||   [tfAgente isFirstResponder] ) {
        
        Agente *agente = agenti[row];
        descrizione = [NSString stringWithFormat:@"%@ - %@", agente.codage, agente.descrizione];
        
    } else if ([pickerView isEqual:trasportoPicker] ||   [tfTrasporto isFirstResponder] ) {
        
        Trasporto *trasporto = trasporti[row];
        descrizione = [NSString stringWithFormat:@"%@ - %@", trasporto.codtra, trasporto.descrizione];
        
    } else if ([pickerView isEqual:banchePicker] ||   [tfBanca isFirstResponder] ) {
        
        Banca *banca = banche[row];
        descrizione = [NSString stringWithFormat:@"%@ - %@", banca.codban, banca.descrizione];
        
    } else if ([pickerView isEqual:esenzioniIvaPicker] ||   [tfEsenzioneIva isFirstResponder] ) {
        
        Aliquota *aliquota = esenzioniiva[row];
        descrizione = [NSString stringWithFormat:@"%@ - %@", aliquota.codali, aliquota.descrizione];
        
    }
    return descrizione;
}

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    long quanti = 0;
    
    if ([pickerView isEqual:pagamentiPicker] ||   [tfPagamento isFirstResponder]  ) {
        
        quanti = [pagamenti count];
        
    } else if ([pickerView isEqual:listiniPicker] ||  [tfListino isFirstResponder] ){
        
        quanti = [listini count];

    } else if ([pickerView isEqual:agentiPicker] ||  [tfAgente isFirstResponder] ){
        
        quanti = [agenti count];
        
    } else if ([pickerView isEqual:trasportoPicker] ||  [tfTrasporto isFirstResponder] ){
        
        quanti = [trasporti count];

    } else if ([pickerView isEqual:banchePicker] ||  [tfBanca isFirstResponder] ){
        
        quanti = [banche count];

        
    } else if ([pickerView isEqual:esenzioniIvaPicker] ||  [tfEsenzioneIva isFirstResponder] ){
        
        quanti = [esenzioniiva count];
        
    }

    return quanti;
}

@end
